/*
题目描述
使用弦截法求方程f(x)=x^3-5x^2+16x-80=0的根。方法如下：

(1) 取两个不同点x1、x2，如果f(x1)和f(x2)符号相反，则(x1, x2)区间内必有一个根。
    如果f(x1)与f(x2)同符号，则应改变x1、x2，直到f(x1)、f(x2)异号为止。
    注意x1、x2的值不应相差太大，以保证(x1, x2)区间内只有一个根。

(2) 连接(x1,f(x1))和(x2,f(x2))两点，此线（即弦）交x轴于x，如下图所示：

x点坐标可以用下式求出：

x = x1f(x2) - x2f(x1) / f(x2) - f(x1)

再从x求出f(x)。

(3) 若f(x)与f(x1)同符号，则根必在(x, x2)区间内，此时将x作为新的x1。
    如果f(x)与f(x2)同符号，则表示根在(x1,x)区间内，将x作为新的x2。

(4) 重复步骤(2)和步骤(3)，直到|f(x)|<ε为止，ε是一个很小的数，例如10-6。此时认为f(x)≈0。

输入
两个用空格隔开的实数x1和x2，表示弦截法的区间两端。保证x1< x2，且区间内一定有解。

输出
使用弦截法计算出的方程f(x)=x3-5x2+15x-80=0的根。小数点后保留4位小数。

请注意行尾输出换行。
*/
#include <stdio.h>
// 阅读题目跟着做就行，没有那么复杂
double f(double x)
{
    return x * x * x - 5 * x * x + 16 * x - 80;
}
int main()
{
    double x1 = 0.0;
    double x2 = 0.0;
    scanf("%lf", &x1);
    scanf("%lf", &x2);
    // 检查是否异号
    while ((f(x1) > 0.0 && f(x2)) > 0.0 || (f(x1) < 0.0 && f(x2) < 0.0))
    {
        x1 -= 0.1;
        x2 += 0.1;
    }
    double x = (x1 * f(x2) - x2 * f(x1)) / (f(x2) - f(x1));
    while (f(x) > 0 ? f(x) > 1E-6 : -f(x) > 1E-6)
    {
        x = (x1 * f(x2) - x2 * f(x1)) / (f(x2) - f(x1));
        if (f(x) > 0 && f(x1) > 0 || f(x) < 0 && f(x1) < 0)
        {
            x1 = x;
        }
        if (f(x) > 0 && f(x2) > 0 || f(x) < 0 && f(x2) < 0)
        {
            x2 = x;
        }
    }
    printf("%.6lf", x);
}